package com.my.behaviourtype.chain.hierarchy;
/**
 * 　责任链模式是一种对象的行为模式。在责任链模式里，很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递，直到链上的某一个对象决定处理此请求。
 * 发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求，这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。
 * 
 * 这个例子中的责任链是有层级关系的,自己处理不了就交给上级来处理,而以前的是没有层级关系的
 */
public class Test {

	public static void main(String[] args) {
		Handler pm = new ProjectManager();
		Handler dm = new DeptManager();
		Handler gm = new GeneralManager();
		
		pm.setHandler(dm);// 自己处理不了就交给下一级
		dm.setHandler(gm);
		
		//pm.handleRequest("tom", 400);
		//pm.handleRequest("tom", 800);
		pm.handleRequest("tom", 2000);
		
		//pm.handleRequest("jerry", 400);
	}

}
